#ifndef USERINFOWIDGET_H
#define USERINFOWIDGET_H

#include <QDialog>
#include <QLabel>
#include <QWidget>
#include "Custom/CircleButton.h"
#include "Model/data.h"
#include "Model/DataCenter.h"

struct Labels {
    QLabel* show_label; // 用于显示的 label
    QLabel* edit_label; // 会根据不同情况下进行修改的 label
};
/////////////////////////////////////////////
/// 点击其它用户头像时显示的画面
/////////////////////////////////////////////
class UserInfoDialog : public QDialog
{
    Q_OBJECT
public:
    UserInfoDialog(QWidget* parent, const model::UserInfo& user_info);
private:
    void init_ui();
    void connect_signals();
    void initLabels(Labels& labels, const QString& text1, const QString& text2);
    void initButtons(QPushButton*& btn, const QString& text);
public slots:
    void handle_send_clicked();
    void handle_del_clicked();
    void handle_add_clicked();
private:
    const model::UserInfo& user_info; // 储存用户的信息, 用于显示
    CircleButton*          avatar;
    Labels oo;
    Labels nick_name;
    Labels desc;
    Labels phone_num;
    QPushButton* add;
    QPushButton* send;
    QPushButton* del;
    model::DataCenter*   data_center;
};

#endif // USERINFOWIDGET_H
